home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / cool / cool.lha / ice / pisces / flex / scan.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-09-04  |  52.7 KB  |  1,781 lines

  1. #define FLEX_COMPRESSED
  2. /* A lexical scanner generated by flex */
  3.  
  4. /* scanner skeleton version:
  5.  * $Header: flex.skel,v 2.0 89/06/20 15:49:46 vern Locked $
  6.  */
  7.  
  8. #include <stdio.h>
  9.  
  10. #define FLEX_SCANNER
  11.  
  12. /* amount of stuff to slurp up with each read */
  13. #ifndef YY_READ_BUF_SIZE
  14. #define YY_READ_BUF_SIZE 8192
  15. #endif
  16.  
  17. #ifndef YY_BUF_SIZE
  18. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of input buffer */
  19. #endif
  20.  
  21. /* returned upon end-of-file */
  22. #define YY_END_TOK 0
  23.  
  24. /* copy whatever the last rule matched to the standard output */
  25.  
  26. #define ECHO fputs( yytext, yyout )
  27.  
  28. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  29.  * is returned in "result".
  30.  */
  31. #define YY_INPUT(buf,result,max_size) \
  32.     if ( (result = read( fileno(yyin), buf, max_size )) < 0 ) \
  33.         YY_FATAL_ERROR( "read() in flex scanner failed" );
  34. #define YY_NULL 0
  35. #define yyterminate() return ( YY_NULL )
  36.  
  37. /* report a fatal error */
  38. #define YY_FATAL_ERROR(msg) \
  39.     { \
  40.     fputs( msg, stderr ); \
  41.     putc( '\n', stderr ); \
  42.     exit( 1 ); \
  43.     }
  44.  
  45. /* default yywrap function - always treat EOF as an EOF */
  46. #define yywrap() 1
  47.  
  48. /* enter a start condition.  This macro really ought to take a parameter,
  49.  * but we do it the disgusting crufty way forced on us by the ()-less
  50.  * definition of BEGIN
  51.  */
  52. #define BEGIN yy_start = 1 + 2 *
  53.  
  54. /* action number for EOF rule of a given start state */
  55. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  56.  
  57. /* special action meaning "start processing a new file" */
  58. #define YY_NEW_FILE goto new_file
  59.  
  60. /* default declaration of generated scanner - a define so the user can
  61.  * easily add parameters
  62.  */
  63. #ifdef __STDC__
  64. #define YY_DECL int yylex( void )
  65. #else
  66. #define YY_DECL int yylex()
  67. #endif
  68.  
  69. /* code executed at the end of each rule */
  70. #define YY_BREAK break;
  71.  
  72. #define YY_END_OF_BUFFER_CHAR 0
  73.  
  74. /* done after the current pattern has been matched and before the
  75.  * corresponding action - sets up yytext
  76.  */
  77. #define YY_DO_BEFORE_ACTION \
  78.     yytext = yy_bp; \
  79.     yy_hold_char = *yy_cp; \
  80.     *yy_cp = '\0'; \
  81.     yy_c_buf_p = yy_cp;
  82.  
  83. /* returns the length of the matched text */
  84. #define yyleng (yy_cp - yy_bp)
  85.  
  86. #define EOB_ACT_RESTART_SCAN 0
  87. #define EOB_ACT_END_OF_FILE 1
  88. #define EOB_ACT_LAST_MATCH 2
  89.  
  90. /* return all but the first 'n' matched characters back to the input stream */
  91. #define yyless(n) \
  92.     { \
  93.     *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
  94.     yy_c_buf_p = yy_cp = yy_bp + n; \
  95.     YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  96.     }
  97.  
  98. #define unput(c) yyunput( c, yy_bp )
  99.  
  100. #define YY_USER_ACTION
  101.  
  102. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  103. char *yytext;
  104.  
  105. #ifndef __STDC__
  106. #define const
  107. #endif
  108.  
  109. # line 1 "scan.l"
  110. #define INITIAL 0
  111. /* scan.l - scanner for flex input */
  112. /*
  113.  * Copyright (c) 1989 The Regents of the University of California.
  114.  * All rights reserved.
  115.  *
  116.  * This code is derived from software contributed to Berkeley by
  117.  * Vern Paxson.
  118.  * 
  119.  * The United States Government has rights in this work pursuant to
  120.  * contract no. DE-AC03-76SF00098 between the United States Department of
  121.  * Energy and the University of California.
  122.  *
  123.  * Redistribution and use in source and binary forms are permitted
  124.  * provided that the above copyright notice and this paragraph are
  125.  * duplicated in all such forms and that any documentation,
  126.  * advertising materials, and other materials related to such
  127.  * distribution and use acknowledge that the software was developed
  128.  * by the University of California, Berkeley.  The name of the
  129.  * University may not be used to endorse or promote products derived
  130.  * from this software without specific prior written permission.
  131.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  132.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  133.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  134.  */
  135. # line 28 "scan.l"
  136. #include "flexdef.h"
  137. #include "parse.h"
  138.  
  139. #ifndef lint
  140. static char copyright[] =
  141.     "@(#) Copyright (c) 1989 The Regents of the University of California.\n";
  142. static char CR_continuation[] = "@(#) All rights reserved.\n";
  143.  
  144. static char rcsid[] =
  145.     "@(#) $Header: /usr4/rock/system/pisces/flex/RCS/scan.l,v 1.1 90/05/15 13:18:34 neath Exp $ (LBL)";
  146. #endif
  147.  
  148. #define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
  149. #define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );
  150.  
  151. #undef YY_DECL
  152. #define YY_DECL \
  153.     int flexscan()
  154.  
  155. #define RETURNCHAR \
  156.     yylval = yytext[0]; \
  157.     return ( CHAR );
  158.  
  159. #define RETURNNAME \
  160.     (void) strcpy( nmstr, yytext ); \
  161.     return ( NAME );
  162.  
  163. #define PUT_BACK_STRING(str, start) \
  164.     for ( i = strlen( str ) - 1; i >= start; --i ) \
  165.         unput(str[i])
  166.  
  167. #define CHECK_REJECT(str) \
  168.     if ( all_upper( str ) ) \
  169.         reject = true;
  170.  
  171. #define CHECK_YYMORE(str) \
  172.     if ( all_lower( str ) ) \
  173.         yymore_used = true;
  174. #define SECT2 1
  175. #define SECT2PROLOG 2
  176. #define SECT3 3
  177. #define CODEBLOCK 4
  178. #define PICKUPDEF 5
  179. #define SC 6
  180. #define CARETISBOL 7
  181. #define NUM 8
  182. #define QUOTE 9
  183. #define FIRSTCCL 10
  184. #define CCL 11
  185. #define ACTION 12
  186. #define RECOVER 13
  187. #define BRACEERROR 14
  188. #define C_COMMENT 15
  189. #define C_COMMENT_2 16
  190. #define ACTION_COMMENT 17
  191. #define ACTION_STRING 18
  192. #define PERCENT_BRACE_ACTION 19
  193. #define USED_LIST 20
  194. # line 83 "scan.l"
  195. #define YY_END_OF_BUFFER 116
  196. typedef int yy_state_type;
  197. static const short int yy_accept[317] =
  198.     {   0,
  199.         0,    0,    0,    0,    0,    0,  114,  114,    0,    0,
  200.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  201.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  202.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  203.         0,    0,  116,   16,    7,   15,   13,    1,   14,   16,
  204.        16,   16,   12,   58,   50,   51,   43,   58,   57,   41,
  205.        58,   58,   58,   50,   39,   58,   57,   42,  115,   37,
  206.       114,  114,   25,   26,   25,   25,   25,   25,   28,   27,
  207.        29,   64,  115,   60,   61,   63,   65,   79,   80,   77,
  208.        76,   78,   66,   68,   67,   66,   72,   71,   72,   72,
  209.  
  210.        74,   74,   74,   75,   90,   95,   94,   96,   96,   91,
  211.        91,   91,   88,   89,  115,   30,   82,   81,   19,   21,
  212.        20,  104,  106,  105,   98,  100,   99,  107,  109,  110,
  213.       111,   86,   86,   87,   86,   86,   86,   86,   35,   32,
  214.        31,   35,   35,    7,   13,    1,   14,    0,    2,    0,
  215.         8,    4,    0,    5,    0,    3,   12,   50,   51,    0,
  216.         0,   46,    0,    0,    0,  112,  112,   45,   44,   45,
  217.         0,   50,   39,    0,    0,    0,   54,   49,    0,   37,
  218.        36,  114,  114,   25,   25,   25,   25,   25,   28,   27,
  219.        62,   63,   76,  113,  113,   69,   70,   73,   90,    0,
  220.  
  221.        93,    0,   92,   91,   91,   91,    0,   30,   19,   17,
  222.       104,  102,   98,   97,  107,  108,   86,   86,   86,   83,
  223.        86,   86,   86,   35,   32,   35,   35,    0,    8,    8,
  224.         0,    0,    0,    0,    6,    0,   47,    0,   48,    0,
  225.        55,    0,  112,   45,   45,   56,   40,    0,   47,    0,
  226.        40,    0,   54,   25,   25,   25,   22,    0,  113,   91,
  227.        91,    0,   18,    0,  103,   83,   83,   86,   86,   35,
  228.        35,    0,   11,    8,    0,    0,    0,    0,    6,    0,
  229.         0,   25,   25,   91,   91,   86,   86,   35,   35,    0,
  230.         0,    9,    0,    0,   25,   25,   91,   91,   86,   86,
  231.  
  232.        35,   35,    4,    0,    0,   23,   24,   84,   85,   84,
  233.        85,   33,   34,   10,   53,    0
  234.     } ;
  235.  
  236. static const char yy_ec[128] =
  237.     {   0,
  238.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  239.         1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
  240.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  241.         1,    5,    1,    6,    7,    8,    9,    1,   10,   11,
  242.        11,   12,   11,   13,   14,   11,   15,   16,   16,   16,
  243.        16,   16,   16,   16,   16,   16,   16,    1,    1,   17,
  244.         1,   18,   11,    1,    1,    1,    1,    1,   19,   20,
  245.         1,    1,    1,    1,    1,    1,    1,    1,   21,    1,
  246.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  247.        22,   23,   24,   25,   26,    1,   27,   26,   28,   29,
  248.  
  249.        30,   26,   26,   26,   26,   31,   26,   26,   32,   33,
  250.        34,   26,   26,   35,   36,   37,   38,   26,   26,   39,
  251.        40,   26,   41,   42,   43,    1,    1
  252.     } ;
  253.  
  254. static const char yy_meta[44] =
  255.     {   0,
  256.         1,    2,    3,    2,    2,    4,    1,    1,    1,    5,
  257.         1,    6,    1,    7,    5,    7,    1,    1,    1,    1,
  258.         1,    1,    8,    9,    1,   10,   10,   10,   10,   10,
  259.        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
  260.         5,    1,   11
  261.     } ;
  262.  
  263. static const short int yy_base[378] =
  264.     {   0,
  265.         0,   43,   85,  126,  632,  631,  599,  598,  166,  204,
  266.       101,  107,  244,    0,  575,  574,  120,  137,   92,  116,
  267.       141,  151,  158,  205,  287,    0,  595,  594,  113,  114,
  268.        89,  159,  167,  172,  174,  175,  328,  329,  352,    0,
  269.       186,  394,  596, 1312,  116, 1312,    0,  207, 1312,  592,
  270.       392,  582,    0, 1312,  400, 1312, 1312,  212, 1312,  576,
  271.       569,  575,  427,  466, 1312,  581,  577, 1312,  585,    0,
  272.       584, 1312,    0, 1312,    0,  556,  545,  541,    0,  218,
  273.      1312, 1312, 1312, 1312,  558,    0, 1312, 1312, 1312, 1312,
  274.       566, 1312, 1312, 1312, 1312,  565, 1312, 1312,  562,  563,
  275.  
  276.      1312,    0,  560, 1312,    0, 1312, 1312,  135,  563,    0,
  277.       544,  533, 1312, 1312,  569, 1312, 1312, 1312,    0, 1312,
  278.       556,    0, 1312,  555,    0, 1312,  554,    0, 1312, 1312,
  279.         0,    0,  334, 1312,  525,    0,  537,  526,    0,  340,
  280.      1312,  535,  524,  344,    0,  408, 1312,  560, 1312,  557,
  281.       556,  523,  402, 1312,  180, 1312,    0,  442, 1312,  518,
  282.       555, 1312,  538,   90,  136, 1312,  540,    0, 1312,  495,
  283.       144,  537, 1312,  411,  213,  403,    0, 1312,  552,    0,
  284.      1312,  551, 1312,    0,    0,  522,  519,  577,    0,  415,
  285.      1312,    0,  534, 1312,  533, 1312, 1312, 1312,    0,  327,
  286.  
  287.      1312,    0, 1312,    0,  517,  515,  542, 1312,    0,  541,
  288.         0,  540,    0, 1312,    0, 1312,    0,  474,  494,  592,
  289.         0,  505,  488,    0,  419,  488,  486,  514,    0,  513,
  290.       488,  476,  483,  509, 1312,  507, 1312,  504, 1312,  485,
  291.      1312,  317,  489,    0,    0, 1312, 1312,  215,  412,  422,
  292.      1312,  429,    0,  474,  469,  630, 1312,  499,  485,  470,
  293.       465,  495, 1312,  494, 1312,  645,    0,  466,  461,  464,
  294.       459,  489, 1312,  488,  455,  453,  457,  482, 1312,  462,
  295.       464,  449,  439,  445,  437,  422,  414,  420,  405,  402,
  296.       406, 1312,  404,  101,  379,  378,  363,  317,  187,  143,
  297.  
  298.       109,  112, 1312,   70,   76,    0,    0,    0,    0,    0,
  299.         0,    0,    0, 1312, 1312, 1312,  685,  696,  707,  718,
  300.       729,  740,  751,  762,  773,  784,  795,  806,  817,  828,
  301.       839,  850,  855,  865,  876,  881,  891,  902,  913,  924,
  302.       935,  946,  957,  968,  973,  983,  988,  998, 1009, 1020,
  303.      1031, 1040, 1045, 1055, 1066, 1077, 1088, 1099, 1110, 1121,
  304.      1126, 1136, 1147, 1158, 1169, 1180, 1190, 1201, 1212, 1223,
  305.      1234, 1245, 1256, 1267, 1278, 1289, 1300
  306.     } ;
  307.  
  308. static const short int yy_def[378] =
  309.     {   0,
  310.       316,  316,  317,  317,  318,  318,  319,  319,  320,  320,
  311.       321,  321,  316,   13,  322,  322,  323,  323,  324,  324,
  312.       325,  325,  326,  326,  316,   25,  327,  327,  322,  322,
  313.       328,  328,  329,  329,  330,  330,  331,  331,  316,   39,
  314.       332,  332,  316,  316,  316,  316,  333,  316,  316,  334,
  315.       335,  316,  336,  316,  316,  316,  316,  316,  316,  316,
  316.       337,  338,  339,  340,  316,  316,  316,  316,  341,  342,
  317.       343,  316,  344,  316,  345,  345,  345,  344,  346,  316,
  318.       316,  316,  316,  316,  316,  347,  316,  316,  316,  316,
  319.       316,  316,  316,  316,  316,  338,  316,  316,  348,  349,
  320.  
  321.       316,  350,  338,  316,  351,  316,  316,  352,  316,  353,
  322.       353,  353,  316,  316,  354,  316,  316,  316,  355,  316,
  323.       316,  356,  316,  316,  357,  316,  316,  358,  316,  316,
  324.       359,  360,  360,  316,  360,  361,  361,  361,  362,  316,
  325.       316,  362,  362,  316,  333,  316,  316,  334,  316,  316,
  326.       363,  316,  316,  316,  364,  316,  336,  316,  316,  316,
  327.       365,  316,  316,  337,  337,  316,  316,  366,  316,  366,
  328.       340,  340,  316,  340,  340,  367,  368,  316,  341,  342,
  329.       316,  343,  316,  344,  345,  345,  345,  369,  346,  316,
  330.       316,  347,  316,  316,  316,  316,  316,  316,  351,  352,
  331.  
  332.       316,  352,  316,  353,  353,  353,  354,  316,  355,  370,
  333.       356,  371,  357,  316,  358,  316,  360,  360,  360,  372,
  334.       361,  361,  361,  362,  316,  362,  362,  373,  363,  374,
  335.       316,  316,  316,  364,  316,  375,  316,  365,  316,  316,
  336.       316,  337,  316,  366,  170,  316,  316,  340,  340,  367,
  337.       316,  367,  368,  345,  345,  369,  316,  376,  316,  353,
  338.       353,  370,  316,  371,  316,  372,  377,  361,  361,  362,
  339.       362,  373,  316,  374,  316,  316,  316,  375,  316,  316,
  340.       337,  345,  345,  353,  353,  361,  361,  362,  362,  316,
  341.       316,  316,  316,  337,  345,  345,  353,  353,  361,  361,
  342.  
  343.       362,  362,  316,  316,  316,  345,  345,  353,  353,  361,
  344.       361,  362,  362,  316,  316,    0,  316,  316,  316,  316,
  345.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  346.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  347.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  348.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  349.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  350.       316,  316,  316,  316,  316,  316,  316
  351.     } ;
  352.  
  353. static const short int yy_nxt[1356] =
  354.     {   0,
  355.        44,   45,   46,   45,   45,   44,   44,   44,   44,   44,
  356.        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
  357.        44,   44,   44,   44,   44,   47,   47,   47,   47,   47,
  358.        47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
  359.        44,   44,   44,   44,   48,   49,   48,   48,   44,   50,
  360.        44,   51,   44,   44,   44,   44,   44,   52,   44,   44,
  361.        44,   44,   44,   44,   44,   44,   44,   44,   53,   53,
  362.        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
  363.        53,   53,   53,   44,   44,   44,   55,   56,   55,   55,
  364.        57,  120,   58,  315,   94,   59,   59,   95,  314,   59,
  365.  
  366.       121,   60,   80,   81,   80,   80,   61,   62,   80,   81,
  367.        80,   80,  165,  241,   96,  117,  117,  144,   94,  144,
  368.       144,   95,   89,  165,  241,   63,   59,   64,   65,   64,
  369.        64,   57,   90,   58,   66,   91,   59,   59,   96,   89,
  370.        67,  313,   60,   83,  201,  312,  247,   61,   62,   90,
  371.        68,  242,   91,   83,   98,  118,  118,  202,  248,  164,
  372.        83,  120,   92,   99,   98,  100,   63,   59,   74,  123,
  373.       121,  102,  311,   99,  123,  100,  126,  126,  124,   92,
  374.       103,  104,  235,  124,  236,  127,  127,  140,  141,  140,
  375.       140,   75,   75,   75,   75,   75,   75,   75,   75,   75,
  376.  
  377.        76,   75,   75,   75,   75,   77,   74,   83,  146,  147,
  378.       146,  146,   78,  162,  162,  247,  162,  247,  102,  190,
  379.       142,  190,  190,  310,  178,  143,  316,  103,  104,   75,
  380.        75,   75,   75,   75,   75,   75,   75,   75,   76,   75,
  381.        75,   75,   75,   77,   82,   82,   83,   82,   82,   82,
  382.        82,   82,   82,   82,   82,   82,   84,   82,   82,   82,
  383.        82,   85,   82,   82,   82,   82,   82,   82,   82,   86,
  384.        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
  385.        86,   86,   86,   86,   82,   82,   82,  105,  105,  106,
  386.       105,  105,  107,  105,  105,  105,  108,  105,  105,  105,
  387.  
  388.       105,  109,  105,  105,  105,  105,  105,  105,  105,  105,
  389.       105,  105,  110,  110,  110,  110,  110,  110,  110,  110,
  390.       110,  111,  110,  110,  110,  110,  112,  113,  105,  114,
  391.       129,  129,  281,  130,  130,  218,  201,  218,  218,  165,
  392.       241,  225,  219,  225,  225,  144,  309,  144,  144,  202,
  393.       131,  131,  132,  133,  134,  133,  133,  132,  132,  132,
  394.       135,  132,  132,  132,  132,  132,  132,  132,  132,  132,
  395.       132,  132,  132,  132,  132,  132,  132,  136,  136,  136,
  396.       136,  136,  136,  136,  136,  136,  137,  136,  136,  136,
  397.       136,  138,  132,  132,  132,  140,  141,  140,  140,  308,
  398.  
  399.       151,  158,  159,  158,  158,  251,  228,  307,  160,  146,
  400.       147,  146,  146,  247,  247,  306,  190,  252,  190,  190,
  401.       225,  305,  225,  225,  251,  248,  248,  152,  142,  153,
  402.       154,  251,  155,  143,  232,  304,  252,  233,  303,  302,
  403.       238,  161,  169,  158,  159,  158,  158,  301,  300,  299,
  404.       160,  249,  170,  170,  170,  170,  170,  170,  170,  170,
  405.       170,  170,  170,  170,  170,  170,  170,  172,  173,  172,
  406.       172,  298,  297,  296,  174,  218,  295,  218,  218,  294,
  407.       175,  293,  219,  161,  279,  292,  165,  241,  291,  290,
  408.       273,  273,  289,  288,  287,  286,  265,  263,  285,  284,
  409.  
  410.       194,  257,  283,  282,  166,  280,  239,  176,  245,  279,
  411.       245,  235,  277,  276,  275,  273,  273,  271,  270,  269,
  412.       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
  413.       245,  245,  245,  245,  245,  268,  220,  246,  172,  173,
  414.       172,  172,  265,  263,  208,  174,  261,  260,  259,  193,
  415.       255,  175,  254,  183,  180,  243,  240,  239,  237,  231,
  416.       230,  228,  149,  227,  226,  223,  222,  220,  214,  212,
  417.       210,  208,  206,  205,  203,  167,  197,  195,  176,  257,
  418.       167,  193,  191,  188,  187,  186,  183,  180,  178,  177,
  419.       167,  165,  163,  156,  149,  316,  116,  116,   87,   87,
  420.  
  421.        72,   72,  258,  258,  258,  258,  258,  258,  258,  258,
  422.       258,  258,  258,  258,  258,  258,  258,  267,  267,  267,
  423.       267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
  424.       267,  267,  257,   70,   70,  316,  316,  316,  316,  316,
  425.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  426.       316,  316,  316,  316,  316,  258,  258,  258,  258,  258,
  427.       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
  428.       267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
  429.       267,  267,  267,  267,  267,   54,   54,   54,   54,   54,
  430.        54,   54,   54,   54,   54,   54,   69,   69,   69,   69,
  431.  
  432.        69,   69,   69,   69,   69,   69,   69,   71,   71,   71,
  433.        71,   71,   71,   71,   71,   71,   71,   71,   73,   73,
  434.        73,   73,   73,   73,   73,   73,   73,   73,   73,   79,
  435.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  436.        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
  437.        83,   88,   88,   88,   88,   88,   88,   88,   88,   88,
  438.        88,   88,   93,   93,   93,   93,   93,   93,   93,   93,
  439.        93,   93,   93,   97,   97,   97,   97,   97,   97,   97,
  440.        97,   97,   97,   97,  101,  101,  101,  101,  101,  101,
  441.       101,  101,  101,  101,  101,  115,  115,  115,  115,  115,
  442.  
  443.       115,  115,  115,  115,  115,  115,  119,  119,  119,  119,
  444.       119,  119,  119,  119,  119,  119,  119,  122,  122,  122,
  445.       122,  122,  122,  122,  122,  122,  122,  122,  125,  125,
  446.       125,  125,  125,  125,  125,  125,  125,  125,  125,  128,
  447.       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
  448.       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  449.       139,  145,  316,  316,  145,  148,  148,  148,  148,  148,
  450.       148,  148,  148,  148,  148,  148,  150,  150,  150,  150,
  451.       150,  150,  150,  150,  150,  150,  150,  157,  316,  316,
  452.       157,  164,  164,  316,  164,  164,  164,  164,  164,  316,
  453.  
  454.       164,  164,  166,  166,  316,  166,  166,  166,  166,  166,
  455.       166,  166,  166,  168,  168,  316,  168,  168,  168,  168,
  456.       168,  168,  168,  168,  171,  171,  171,  171,  171,  171,
  457.       171,  171,  171,  171,  171,  179,  179,  179,  179,  179,
  458.       179,  179,  179,  179,  179,  179,  181,  316,  316,  181,
  459.       181,  181,  181,  181,  181,  181,  181,  182,  182,  182,
  460.       182,  182,  182,  182,  182,  182,  182,  182,  184,  184,
  461.       316,  184,  184,  184,  184,  184,  184,  316,  184,  185,
  462.       316,  316,  185,  189,  189,  316,  189,  189,  189,  189,
  463.       189,  189,  189,  189,  192,  316,  316,  192,  194,  194,
  464.  
  465.       316,  194,  194,  194,  194,  194,  194,  194,  194,  196,
  466.       196,  316,  196,  196,  196,  196,  196,  196,  196,  196,
  467.       198,  198,  316,  198,  198,  198,  198,  198,  316,  198,
  468.       198,  199,  199,  316,  316,  316,  199,  199,  199,  199,
  469.       200,  200,  316,  200,  200,  200,  200,  200,  200,  200,
  470.       200,  204,  316,  316,  204,  207,  207,  207,  207,  207,
  471.       207,  207,  207,  207,  207,  207,  209,  209,  316,  209,
  472.       209,  316,  209,  209,  209,  209,  209,  211,  211,  316,
  473.       211,  211,  316,  211,  211,  211,  211,  211,  213,  213,
  474.       316,  213,  213,  316,  213,  213,  213,  213,  213,  215,
  475.  
  476.       215,  316,  316,  215,  215,  215,  316,  215,  215,  215,
  477.       216,  216,  316,  216,  216,  216,  216,  216,  216,  216,
  478.       216,  217,  217,  316,  217,  217,  217,  217,  217,  217,
  479.       316,  217,  221,  316,  316,  221,  224,  316,  316,  224,
  480.       224,  224,  224,  224,  224,  224,  224,  229,  229,  316,
  481.       229,  229,  229,  229,  229,  229,  229,  229,  234,  234,
  482.       234,  234,  234,  234,  234,  234,  234,  234,  234,  238,
  483.       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
  484.       244,  244,  316,  244,  244,  244,  244,  244,  244,  244,
  485.       250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
  486.  
  487.       250,  253,  253,  316,  253,  253,  253,  253,  253,  253,
  488.       253,  253,  256,  256,  256,  256,  256,  256,  256,  256,
  489.       256,  256,  256,  262,  262,  262,  262,  262,  262,  262,
  490.       262,  262,  262,  262,  264,  264,  264,  264,  264,  264,
  491.       264,  264,  264,  264,  264,  266,  266,  316,  266,  266,
  492.       266,  266,  266,  266,  266,  266,  272,  272,  272,  272,
  493.       272,  272,  272,  272,  272,  272,  272,  274,  274,  274,
  494.       274,  274,  274,  274,  274,  274,  274,  274,  278,  278,
  495.       278,  278,  278,  278,  278,  278,  278,  278,  278,  258,
  496.       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
  497.  
  498.       267,  267,  316,  267,  267,  267,  267,  267,  267,  267,
  499.       267,   43,  316,  316,  316,  316,  316,  316,  316,  316,
  500.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  501.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  502.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  503.       316,  316,  316,  316,  316
  504.     } ;
  505.  
  506. static const short int yy_chk[1356] =
  507.     {   0,
  508.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  509.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  510.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  511.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  512.         1,    1,    1,    2,    2,    2,    2,    2,    2,    2,
  513.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  514.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  515.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  516.         2,    2,    2,    2,    2,    2,    3,    3,    3,    3,
  517.         3,   31,    3,  305,   19,    3,    3,   19,  304,    3,
  518.  
  519.        31,    3,   11,   11,   11,   11,    3,    3,   12,   12,
  520.        12,   12,  164,  164,   19,   29,   30,   45,   20,   45,
  521.        45,   20,   17,  294,  294,    3,    3,    4,    4,    4,
  522.         4,    4,   17,    4,    4,   17,    4,    4,   20,   18,
  523.         4,  302,    4,   21,  108,  301,  171,    4,    4,   18,
  524.         4,  165,   18,   22,   21,   29,   30,  108,  171,  165,
  525.        23,   32,   17,   21,   22,   21,    4,    4,    9,   33,
  526.        32,   23,  300,   22,   34,   22,   35,   36,   33,   18,
  527.        23,   23,  155,   34,  155,   35,   36,   41,   41,   41,
  528.        41,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  529.  
  530.         9,    9,    9,    9,    9,    9,   10,   24,   48,   48,
  531.        48,   48,   10,   58,   58,  175,   58,  248,   24,   80,
  532.        41,   80,   80,  299,  175,   41,  248,   24,   24,   10,
  533.        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
  534.        10,   10,   10,   10,   13,   13,   13,   13,   13,   13,
  535.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  536.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  537.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  538.        13,   13,   13,   13,   13,   13,   13,   25,   25,   25,
  539.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  540.  
  541.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  542.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  543.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  544.        37,   38,  242,   37,   38,  133,  200,  133,  133,  242,
  545.       242,  140,  133,  140,  140,  144,  298,  144,  144,  200,
  546.        37,   38,   39,   39,   39,   39,   39,   39,   39,   39,
  547.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  548.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  549.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  550.        39,   39,   39,   39,   39,   42,   42,   42,   42,  297,
  551.  
  552.        51,   55,   55,   55,   55,  176,  153,  296,   55,  146,
  553.       146,  146,  146,  174,  249,  295,  190,  176,  190,  190,
  554.       225,  293,  225,  225,  250,  174,  249,   51,   42,   51,
  555.        51,  252,   51,   42,  153,  291,  250,  153,  290,  289,
  556.       252,   55,   63,  158,  158,  158,  158,  288,  287,  286,
  557.       158,  174,   63,   63,   63,   63,   63,   63,   63,   63,
  558.        63,   63,   63,   63,   63,   63,   63,   64,   64,   64,
  559.        64,  285,  284,  283,   64,  218,  282,  218,  218,  281,
  560.        64,  280,  218,  158,  278,  277,  281,  281,  276,  275,
  561.       274,  272,  271,  270,  269,  268,  264,  262,  261,  260,
  562.  
  563.       259,  258,  255,  254,  243,  240,  238,   64,  170,  236,
  564.       170,  234,  233,  232,  231,  230,  228,  227,  226,  223,
  565.       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
  566.       170,  170,  170,  170,  170,  222,  219,  170,  172,  172,
  567.       172,  172,  212,  210,  207,  172,  206,  205,  195,  193,
  568.       187,  172,  186,  182,  179,  167,  163,  161,  160,  152,
  569.       151,  150,  148,  143,  142,  138,  137,  135,  127,  124,
  570.       121,  115,  112,  111,  109,  103,  100,   99,  172,  188,
  571.        96,   91,   85,   78,   77,   76,   71,   69,   67,   66,
  572.        62,   61,   60,   52,   50,   43,   28,   27,   16,   15,
  573.  
  574.         8,    7,  188,  188,  188,  188,  188,  188,  188,  188,
  575.       188,  188,  188,  188,  188,  188,  188,  220,  220,  220,
  576.       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
  577.       220,  220,  256,    6,    5,    0,    0,    0,    0,    0,
  578.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  579.         0,    0,    0,    0,    0,  256,  256,  256,  256,  256,
  580.       256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
  581.       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
  582.       266,  266,  266,  266,  266,  317,  317,  317,  317,  317,
  583.       317,  317,  317,  317,  317,  317,  318,  318,  318,  318,
  584.  
  585.       318,  318,  318,  318,  318,  318,  318,  319,  319,  319,
  586.       319,  319,  319,  319,  319,  319,  319,  319,  320,  320,
  587.       320,  320,  320,  320,  320,  320,  320,  320,  320,  321,
  588.       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
  589.       322,  322,  322,  322,  322,  322,  322,  322,  322,  322,
  590.       322,  323,  323,  323,  323,  323,  323,  323,  323,  323,
  591.       323,  323,  324,  324,  324,  324,  324,  324,  324,  324,
  592.       324,  324,  324,  325,  325,  325,  325,  325,  325,  325,
  593.       325,  325,  325,  325,  326,  326,  326,  326,  326,  326,
  594.       326,  326,  326,  326,  326,  327,  327,  327,  327,  327,
  595.  
  596.       327,  327,  327,  327,  327,  327,  328,  328,  328,  328,
  597.       328,  328,  328,  328,  328,  328,  328,  329,  329,  329,
  598.       329,  329,  329,  329,  329,  329,  329,  329,  330,  330,
  599.       330,  330,  330,  330,  330,  330,  330,  330,  330,  331,
  600.       331,  331,  331,  331,  331,  331,  331,  331,  331,  331,
  601.       332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
  602.       332,  333,    0,    0,  333,  334,  334,  334,  334,  334,
  603.       334,  334,  334,  334,  334,  334,  335,  335,  335,  335,
  604.       335,  335,  335,  335,  335,  335,  335,  336,    0,    0,
  605.       336,  337,  337,    0,  337,  337,  337,  337,  337,    0,
  606.  
  607.       337,  337,  338,  338,    0,  338,  338,  338,  338,  338,
  608.       338,  338,  338,  339,  339,    0,  339,  339,  339,  339,
  609.       339,  339,  339,  339,  340,  340,  340,  340,  340,  340,
  610.       340,  340,  340,  340,  340,  341,  341,  341,  341,  341,
  611.       341,  341,  341,  341,  341,  341,  342,    0,    0,  342,
  612.       342,  342,  342,  342,  342,  342,  342,  343,  343,  343,
  613.       343,  343,  343,  343,  343,  343,  343,  343,  344,  344,
  614.         0,  344,  344,  344,  344,  344,  344,    0,  344,  345,
  615.         0,    0,  345,  346,  346,    0,  346,  346,  346,  346,
  616.       346,  346,  346,  346,  347,    0,    0,  347,  348,  348,
  617.  
  618.         0,  348,  348,  348,  348,  348,  348,  348,  348,  349,
  619.       349,    0,  349,  349,  349,  349,  349,  349,  349,  349,
  620.       350,  350,    0,  350,  350,  350,  350,  350,    0,  350,
  621.       350,  351,  351,    0,    0,    0,  351,  351,  351,  351,
  622.       352,  352,    0,  352,  352,  352,  352,  352,  352,  352,
  623.       352,  353,    0,    0,  353,  354,  354,  354,  354,  354,
  624.       354,  354,  354,  354,  354,  354,  355,  355,    0,  355,
  625.       355,    0,  355,  355,  355,  355,  355,  356,  356,    0,
  626.       356,  356,    0,  356,  356,  356,  356,  356,  357,  357,
  627.         0,  357,  357,    0,  357,  357,  357,  357,  357,  358,
  628.  
  629.       358,    0,    0,  358,  358,  358,    0,  358,  358,  358,
  630.       359,  359,    0,  359,  359,  359,  359,  359,  359,  359,
  631.       359,  360,  360,    0,  360,  360,  360,  360,  360,  360,
  632.         0,  360,  361,    0,    0,  361,  362,    0,    0,  362,
  633.       362,  362,  362,  362,  362,  362,  362,  363,  363,    0,
  634.       363,  363,  363,  363,  363,  363,  363,  363,  364,  364,
  635.       364,  364,  364,  364,  364,  364,  364,  364,  364,  365,
  636.       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
  637.       366,  366,    0,  366,  366,  366,  366,  366,  366,  366,
  638.       367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
  639.  
  640.       367,  368,  368,    0,  368,  368,  368,  368,  368,  368,
  641.       368,  368,  369,  369,  369,  369,  369,  369,  369,  369,
  642.       369,  369,  369,  370,  370,  370,  370,  370,  370,  370,
  643.       370,  370,  370,  370,  371,  371,  371,  371,  371,  371,
  644.       371,  371,  371,  371,  371,  372,  372,    0,  372,  372,
  645.       372,  372,  372,  372,  372,  372,  373,  373,  373,  373,
  646.       373,  373,  373,  373,  373,  373,  373,  374,  374,  374,
  647.       374,  374,  374,  374,  374,  374,  374,  374,  375,  375,
  648.       375,  375,  375,  375,  375,  375,  375,  375,  375,  376,
  649.       376,  376,  376,  376,  376,  376,  376,  376,  376,  376,
  650.  
  651.       377,  377,    0,  377,  377,  377,  377,  377,  377,  377,
  652.       377,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  653.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  654.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  655.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  656.       316,  316,  316,  316,  316
  657.     } ;
  658.  
  659. /* the intent behind this definition is that it'll catch
  660.  * any uses of REJECT which flex missed
  661.  */
  662. #define REJECT reject_used_but_not_detected
  663. #define yymore() yymore_used_but_not_detected
  664.  
  665. /* these variables are all declared out here so that section 3 code can
  666.  * manipulate them
  667.  */
  668. static char *yy_c_buf_p;    /* points to current character in buffer */
  669. static int yy_init = 1;        /* whether we need to initialize */
  670. static int yy_start = 0;    /* start state number */
  671.  
  672. /* true when we've seen an EOF for the current input file */
  673. static int yy_eof_has_been_seen;
  674.  
  675. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  676.  
  677. /* yy_ch_buf has to be 2 characters longer than YY_BUF_SIZE because we need
  678.  * to put in 2 end-of-buffer characters (this is explained where it is
  679.  * done) at the end of yy_ch_buf
  680.  */
  681. static char yy_ch_buf[YY_BUF_SIZE + 2];
  682.  
  683. /* yy_hold_char holds the character lost when yytext is formed */
  684. static char yy_hold_char;
  685.  
  686. static yy_state_type yy_last_accepting_state;
  687. static char *yy_last_accepting_cpos;
  688.  
  689. #ifdef __STDC__
  690. static yy_state_type yy_get_previous_state( void );
  691. static int yy_get_next_buffer( void );
  692. static void yyunput( int c, char *buf_ptr );
  693. static int input( void );
  694. static void yyrestart( FILE *input_file );
  695. #else
  696. static yy_state_type yy_get_previous_state();
  697. static int yy_get_next_buffer();
  698. static void yyunput();
  699. static int input();
  700. static void yyrestart();
  701. #endif
  702.  
  703. YY_DECL
  704.     {
  705.     register yy_state_type yy_current_state;
  706.     register char *yy_cp, *yy_bp;
  707.     register int yy_act;
  708.  
  709.  
  710.     static int bracelevel, didadef;
  711.     int i, indented_code, checking_used;
  712.     char nmdef[MAXLINE], myesc();
  713.  
  714.  
  715.     if ( yy_init )
  716.     {
  717.     if ( ! yy_start )
  718.         yy_start = 1;    /* first start state */
  719.  
  720.     if ( ! yyin )
  721.         yyin = stdin;
  722.  
  723.     if ( ! yyout )
  724.         yyout = stdout;
  725.  
  726. new_file:
  727.     /* this is where we enter upon encountering an end-of-file and
  728.      * yywrap() indicating that we should continue processing
  729.      */
  730.  
  731.     /* we put in the '\n' and start reading from [1] so that an
  732.      * initial match-at-newline will be true.
  733.      */
  734.  
  735.     yy_ch_buf[0] = '\n';
  736.     yy_n_chars = 1;
  737.  
  738.     /* we always need two end-of-buffer characters.  The first causes
  739.      * a transition to the end-of-buffer state.  The second causes
  740.      * a jam in that state.
  741.      */
  742.     yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  743.     yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  744.  
  745.     yy_eof_has_been_seen = 0;
  746.  
  747.     yytext = yy_c_buf_p = &yy_ch_buf[1];
  748.     yy_hold_char = *yy_c_buf_p;
  749.     yy_init = 0;
  750.     }
  751.  
  752.     while ( 1 )        /* loops until end-of-file is reached */
  753.     {
  754.     yy_cp = yy_c_buf_p;
  755.  
  756.     /* support of yytext */
  757.     *yy_cp = yy_hold_char;
  758.  
  759.     /* yy_bp points to the position in yy_ch_buf of the start of the
  760.      * current run.
  761.      */
  762.     yy_bp = yy_cp;
  763.  
  764.     yy_current_state = yy_start;
  765.     if ( yy_bp[-1] == '\n' )
  766.         ++yy_current_state;
  767.     do
  768.         {
  769.         register char yy_c = yy_ec[*yy_cp];
  770.         if ( yy_accept[yy_current_state] )
  771.         {
  772.         yy_last_accepting_state = yy_current_state;
  773.         yy_last_accepting_cpos = yy_cp;
  774.         }
  775.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  776.         {
  777.         yy_current_state = yy_def[yy_current_state];
  778.         if ( yy_current_state >= 317 )
  779.             yy_c = yy_meta[yy_c];
  780.         }
  781.         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  782.         ++yy_cp;
  783.         }
  784.     while ( yy_current_state != 316 );
  785.     yy_cp = yy_last_accepting_cpos;
  786.     yy_current_state = yy_last_accepting_state;
  787.  
  788.     /* bogus while loop to let YY_BACK_TRACK, EOB_ACT_LAST_MATCH,
  789.      * and EOF actions branch here without introducing an optimizer-
  790.      * daunting goto
  791.      */
  792.     while ( 1 )
  793.         {
  794.         yy_act = yy_accept[yy_current_state];
  795.  
  796.         YY_DO_BEFORE_ACTION;
  797.         YY_USER_ACTION;
  798.  
  799. #ifdef FLEX_DEBUG
  800.         fprintf( stderr, "--accepting rule #%d (\"%s\")\n",
  801.              yy_act, yytext );
  802. #endif
  803.  
  804. do_action:    /* this label is used only to access EOF actions */
  805.         switch ( yy_act )
  806.         {
  807.         case 0: /* must backtrack */
  808.         /* undo the effects of YY_DO_BEFORE_ACTION */
  809.         *yy_cp = yy_hold_char;
  810.         yy_cp = yy_last_accepting_cpos;
  811.         yy_current_state = yy_last_accepting_state;
  812.         continue; /* go to "YY_DO_BEFORE_ACTION" */
  813.  
  814. case 1:
  815. # line 88 "scan.l"
  816. indented_code = true; BEGIN(CODEBLOCK);
  817.     YY_BREAK
  818. case 2:
  819. # line 89 "scan.l"
  820. ++linenum; ECHO; /* treat as a comment */
  821.     YY_BREAK
  822. case 3:
  823. # line 90 "scan.l"
  824. ECHO; BEGIN(C_COMMENT);
  825.     YY_BREAK
  826. case 4:
  827. # line 91 "scan.l"
  828. return ( SCDECL );
  829.     YY_BREAK
  830. case 5:
  831. # line 92 "scan.l"
  832. return ( XSCDECL );
  833.     YY_BREAK
  834. case 6:
  835. # line 93 "scan.l"
  836. {
  837.             ++linenum;
  838.             line_directive_out( stdout );
  839.             indented_code = false;
  840.             BEGIN(CODEBLOCK);
  841.             }
  842.     YY_BREAK
  843. case 7:
  844. # line 100 "scan.l"
  845. return ( WHITESPACE );
  846.     YY_BREAK
  847. case 8:
  848. # line 102 "scan.l"
  849. {
  850.             sectnum = 2;
  851.             line_directive_out( stdout );
  852.             BEGIN(SECT2PROLOG);
  853.             return ( SECTEND );
  854.             }
  855.     YY_BREAK
  856. case 9:
  857. # line 109 "scan.l"
  858. checking_used = REALLY_USED; BEGIN(USED_LIST);
  859.     YY_BREAK
  860. case 10:
  861. # line 110 "scan.l"
  862. checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
  863.     YY_BREAK
  864. case 11:
  865. # line 113 "scan.l"
  866. {
  867.             fprintf( stderr,
  868.                  "old-style lex command at line %d ignored:\n\t%s",
  869.                  linenum, yytext );
  870.             ++linenum;
  871.             }
  872.     YY_BREAK
  873. case 12:
  874. # line 120 "scan.l"
  875. {
  876.             (void) strcpy( nmstr, yytext );
  877.             didadef = false;
  878.             BEGIN(PICKUPDEF);
  879.             }
  880.     YY_BREAK
  881. case 13:
  882. # line 126 "scan.l"
  883. RETURNNAME;
  884.     YY_BREAK
  885. case 14:
  886. # line 127 "scan.l"
  887. ++linenum; /* allows blank lines in section 1 */
  888.     YY_BREAK
  889. case 15:
  890. # line 128 "scan.l"
  891. ++linenum; return ( '\n' );
  892.     YY_BREAK
  893. case 16:
  894. # line 129 "scan.l"
  895. synerr( "illegal character" ); BEGIN(RECOVER);
  896.     YY_BREAK
  897. case 17:
  898. # line 132 "scan.l"
  899. ECHO; BEGIN(0);
  900.     YY_BREAK
  901. case 18:
  902. # line 133 "scan.l"
  903. ++linenum; ECHO; BEGIN(0);
  904.     YY_BREAK
  905. case 19:
  906. # line 134 "scan.l"
  907. ECHO;
  908.     YY_BREAK
  909. case 20:
  910. # line 135 "scan.l"
  911. ECHO;
  912.     YY_BREAK
  913. case 21:
  914. # line 136 "scan.l"
  915. ++linenum; ECHO;
  916.     YY_BREAK
  917. case 22:
  918. # line 139 "scan.l"
  919. ++linenum; BEGIN(0);
  920.     YY_BREAK
  921. case 23:
  922. # line 140 "scan.l"
  923. ECHO; CHECK_REJECT(yytext);
  924.     YY_BREAK
  925. case 24:
  926. # line 141 "scan.l"
  927. ECHO; CHECK_YYMORE(yytext);
  928.     YY_BREAK
  929. case 25:
  930. # line 142 "scan.l"
  931. ECHO;
  932.     YY_BREAK
  933. case 26:
  934. # line 143 "scan.l"
  935. {
  936.             ++linenum;
  937.             ECHO;
  938.             if ( indented_code )
  939.                 BEGIN(0);
  940.             }
  941.     YY_BREAK
  942. case 27:
  943. # line 151 "scan.l"
  944. /* separates name and definition */
  945.     YY_BREAK
  946. case 28:
  947. # line 153 "scan.l"
  948. {
  949.             (void) strcpy( nmdef, yytext );
  950.  
  951.             for ( i = strlen( nmdef ) - 1;
  952.                   i >= 0 &&
  953.                   nmdef[i] == ' ' || nmdef[i] == '\t';
  954.                   --i )
  955.                 ;
  956.  
  957.             nmdef[i + 1] = '\0';
  958.  
  959.                         ndinstal( nmstr, nmdef );
  960.             didadef = true;
  961.             }
  962.     YY_BREAK
  963. case 29:
  964. # line 168 "scan.l"
  965. {
  966.             if ( ! didadef )
  967.                 synerr( "incomplete name definition" );
  968.             BEGIN(0);
  969.             ++linenum;
  970.             }
  971.     YY_BREAK
  972. case 30:
  973. # line 175 "scan.l"
  974. ++linenum; BEGIN(0); RETURNNAME;
  975.     YY_BREAK
  976. case 31:
  977. # line 178 "scan.l"
  978. ++linenum; BEGIN(0);
  979.     YY_BREAK
  980. case 32:
  981. # line 179 "scan.l"
  982.  
  983.     YY_BREAK
  984. case 33:
  985. # line 180 "scan.l"
  986. {
  987.             if ( all_upper( yytext ) )
  988.                 reject_really_used = checking_used;
  989.             else
  990.                 synerr( "unrecognized %used/%unused construct" );
  991.             }
  992.     YY_BREAK
  993. case 34:
  994. # line 186 "scan.l"
  995. {
  996.             if ( all_lower( yytext ) )
  997.                 yymore_really_used = checking_used;
  998.             else
  999.                 synerr( "unrecognized %used/%unused construct" );
  1000.             }
  1001.     YY_BREAK
  1002. case 35:
  1003. # line 192 "scan.l"
  1004. synerr( "unrecognized %used/%unused construct" );
  1005.     YY_BREAK
  1006. case 36:
  1007. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1008. yy_c_buf_p = yy_cp -= 1;
  1009. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1010. # line 195 "scan.l"
  1011. {
  1012.             ++linenum;
  1013.             ACTION_ECHO;
  1014.             MARK_END_OF_PROLOG;
  1015.             BEGIN(SECT2);
  1016.             }
  1017.     YY_BREAK
  1018. case 37:
  1019. # line 202 "scan.l"
  1020. ++linenum; ACTION_ECHO;
  1021.     YY_BREAK
  1022. case YY_STATE_EOF(SECT2PROLOG):
  1023. # line 204 "scan.l"
  1024. MARK_END_OF_PROLOG; yyterminate();
  1025.     YY_BREAK
  1026. case 39:
  1027. # line 206 "scan.l"
  1028. ++linenum; /* allow blank lines in section 2 */
  1029.     YY_BREAK
  1030.     /* this horrible mess of a rule matches indented lines which
  1031.      * do not contain "/*".  We need to make the distinction because
  1032.      * otherwise this rule will be taken instead of the rule which
  1033.      * matches the beginning of comments like this one
  1034.      */
  1035. case 40:
  1036. # line 213 "scan.l"
  1037. {
  1038.             synerr( "indented code found outside of action" );
  1039.             ++linenum;
  1040.             }
  1041.     YY_BREAK
  1042. case 41:
  1043. # line 218 "scan.l"
  1044. BEGIN(SC); return ( '<' );
  1045.     YY_BREAK
  1046. case 42:
  1047. # line 219 "scan.l"
  1048. return ( '^' );
  1049.     YY_BREAK
  1050. case 43:
  1051. # line 220 "scan.l"
  1052. BEGIN(QUOTE); return ( '"' );
  1053.     YY_BREAK
  1054. case 44:
  1055. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1056. yy_c_buf_p = yy_cp = yy_bp + 1;
  1057. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1058. # line 221 "scan.l"
  1059. BEGIN(NUM); return ( '{' );
  1060.     YY_BREAK
  1061. case 45:
  1062. # line 222 "scan.l"
  1063. BEGIN(BRACEERROR);
  1064.     YY_BREAK
  1065. case 46:
  1066. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1067. yy_c_buf_p = yy_cp = yy_bp + 1;
  1068. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1069. # line 223 "scan.l"
  1070. return ( '$' );
  1071.     YY_BREAK
  1072. case 47:
  1073. # line 225 "scan.l"
  1074. {
  1075.             bracelevel = 1;
  1076.             BEGIN(PERCENT_BRACE_ACTION);
  1077.             return ( '\n' );
  1078.             }
  1079.     YY_BREAK
  1080. case 48:
  1081. # line 230 "scan.l"
  1082. continued_action = true; ++linenum; return ( '\n' );
  1083.     YY_BREAK
  1084. case 49:
  1085. # line 232 "scan.l"
  1086. ACTION_ECHO; BEGIN(C_COMMENT_2);
  1087.     YY_BREAK
  1088. case 50:
  1089. # line 234 "scan.l"
  1090. {
  1091.             /* this rule is separate from the one below because
  1092.              * otherwise we get variable trailing context, so
  1093.              * we can't build the scanner using -{f,F}
  1094.              */
  1095.             bracelevel = 0;
  1096.             continued_action = false;
  1097.             BEGIN(ACTION);
  1098.             return ( '\n' );
  1099.             }
  1100.     YY_BREAK
  1101. case 51:
  1102. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1103. yy_c_buf_p = yy_cp -= 1;
  1104. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1105. # line 245 "scan.l"
  1106. {
  1107.             bracelevel = 0;
  1108.             continued_action = false;
  1109.             BEGIN(ACTION);
  1110.             return ( '\n' );
  1111.             }
  1112.     YY_BREAK
  1113. case 52:
  1114. # line 252 "scan.l"
  1115. ++linenum; return ( '\n' );
  1116.     YY_BREAK
  1117. case 53:
  1118. # line 254 "scan.l"
  1119. return ( EOF_OP );
  1120.     YY_BREAK
  1121. case 54:
  1122. # line 256 "scan.l"
  1123. {
  1124.             sectnum = 3;
  1125.             BEGIN(SECT3);
  1126.             return ( EOF ); /* to stop the parser */
  1127.             }
  1128.     YY_BREAK
  1129. case 55:
  1130. # line 262 "scan.l"
  1131. {
  1132.             int cclval;
  1133.  
  1134.             (void) strcpy( nmstr, yytext );
  1135.  
  1136.             /* check to see if we've already encountered this ccl */
  1137.             if ( (cclval = ccllookup( nmstr )) )
  1138.                 {
  1139.                 yylval = cclval;
  1140.                 ++cclreuse;
  1141.                 return ( PREVCCL );
  1142.                 }
  1143.             else
  1144.                 {
  1145.                 /* we fudge a bit.  We know that this ccl will
  1146.                  * soon be numbered as lastccl + 1 by cclinit
  1147.                  */
  1148.                 cclinstal( nmstr, lastccl + 1 );
  1149.  
  1150.                 /* push back everything but the leading bracket
  1151.                  * so the ccl can be rescanned
  1152.                  */
  1153.                 PUT_BACK_STRING(nmstr, 1);
  1154.  
  1155.                 BEGIN(FIRSTCCL);
  1156.                 return ( '[' );
  1157.                 }
  1158.             }
  1159.     YY_BREAK
  1160. case 56:
  1161. # line 291 "scan.l"
  1162. {
  1163.             register char *nmdefptr;
  1164.             char *ndlookup();
  1165.  
  1166.             (void) strcpy( nmstr, yytext );
  1167.             nmstr[yyleng - 1] = '\0';  /* chop trailing brace */
  1168.  
  1169.             /* lookup from "nmstr + 1" to chop leading brace */
  1170.             if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )
  1171.                 synerr( "undefined {name}" );
  1172.  
  1173.             else
  1174.                 { /* push back name surrounded by ()'s */
  1175.                 unput(')');
  1176.                 PUT_BACK_STRING(nmdefptr, 0);
  1177.                 unput('(');
  1178.                 }
  1179.             }
  1180.     YY_BREAK
  1181. case 57:
  1182. # line 310 "scan.l"
  1183. return ( yytext[0] );
  1184.     YY_BREAK
  1185. case 58:
  1186. # line 311 "scan.l"
  1187. RETURNCHAR;
  1188.     YY_BREAK
  1189. case 59:
  1190. # line 312 "scan.l"
  1191. ++linenum; return ( '\n' );
  1192.     YY_BREAK
  1193. case 60:
  1194. # line 315 "scan.l"
  1195. return ( ',' );
  1196.     YY_BREAK
  1197. case 61:
  1198. # line 316 "scan.l"
  1199. BEGIN(SECT2); return ( '>' );
  1200.     YY_BREAK
  1201. case 62:
  1202. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1203. yy_c_buf_p = yy_cp = yy_bp + 1;
  1204. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1205. # line 317 "scan.l"
  1206. BEGIN(CARETISBOL); return ( '>' );
  1207.     YY_BREAK
  1208. case 63:
  1209. # line 318 "scan.l"
  1210. RETURNNAME;
  1211.     YY_BREAK
  1212. case 64:
  1213. # line 319 "scan.l"
  1214. synerr( "bad start condition name" );
  1215.     YY_BREAK
  1216. case 65:
  1217. # line 321 "scan.l"
  1218. BEGIN(SECT2); return ( '^' );
  1219.     YY_BREAK
  1220. case 66:
  1221. # line 324 "scan.l"
  1222. RETURNCHAR;
  1223.     YY_BREAK
  1224. case 67:
  1225. # line 325 "scan.l"
  1226. BEGIN(SECT2); return ( '"' );
  1227.     YY_BREAK
  1228. case 68:
  1229. # line 327 "scan.l"
  1230. {
  1231.             synerr( "missing quote" );
  1232.             BEGIN(SECT2);
  1233.             ++linenum;
  1234.             return ( '"' );
  1235.             }
  1236.     YY_BREAK
  1237. case 69:
  1238. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1239. yy_c_buf_p = yy_cp = yy_bp + 1;
  1240. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1241. # line 335 "scan.l"
  1242. BEGIN(CCL); return ( '^' );
  1243.     YY_BREAK
  1244. case 70:
  1245. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1246. yy_c_buf_p = yy_cp = yy_bp + 1;
  1247. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1248. # line 336 "scan.l"
  1249. return ( '^' );
  1250.     YY_BREAK
  1251. case 71:
  1252. # line 337 "scan.l"
  1253. BEGIN(CCL); yylval = '-'; return ( CHAR );
  1254.     YY_BREAK
  1255. case 72:
  1256. # line 338 "scan.l"
  1257. BEGIN(CCL); RETURNCHAR;
  1258.     YY_BREAK
  1259. case 73:
  1260. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1261. yy_c_buf_p = yy_cp = yy_bp + 1;
  1262. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1263. # line 340 "scan.l"
  1264. return ( '-' );
  1265.     YY_BREAK
  1266. case 74:
  1267. # line 341 "scan.l"
  1268. RETURNCHAR;
  1269.     YY_BREAK
  1270. case 75:
  1271. # line 342 "scan.l"
  1272. BEGIN(SECT2); return ( ']' );
  1273.     YY_BREAK
  1274. case 76:
  1275. # line 345 "scan.l"
  1276. {
  1277.             yylval = myctoi( yytext );
  1278.             return ( NUMBER );
  1279.             }
  1280.     YY_BREAK
  1281. case 77:
  1282. # line 350 "scan.l"
  1283. return ( ',' );
  1284.     YY_BREAK
  1285. case 78:
  1286. # line 351 "scan.l"
  1287. BEGIN(SECT2); return ( '}' );
  1288.     YY_BREAK
  1289. case 79:
  1290. # line 353 "scan.l"
  1291. {
  1292.             synerr( "bad character inside {}'s" );
  1293.             BEGIN(SECT2);
  1294.             return ( '}' );
  1295.             }
  1296.     YY_BREAK
  1297. case 80:
  1298. # line 359 "scan.l"
  1299. {
  1300.             synerr( "missing }" );
  1301.             BEGIN(SECT2);
  1302.             ++linenum;
  1303.             return ( '}' );
  1304.             }
  1305.     YY_BREAK
  1306. case 81:
  1307. # line 367 "scan.l"
  1308. synerr( "bad name in {}'s" ); BEGIN(SECT2);
  1309.     YY_BREAK
  1310. case 82:
  1311. # line 368 "scan.l"
  1312. synerr( "missing }" ); ++linenum; BEGIN(SECT2);
  1313.     YY_BREAK
  1314. case 83:
  1315. # line 371 "scan.l"
  1316. bracelevel = 0;
  1317.     YY_BREAK
  1318. case 84:
  1319. # line 372 "scan.l"
  1320. ACTION_ECHO; CHECK_REJECT(yytext);
  1321.     YY_BREAK
  1322. case 85:
  1323. # line 373 "scan.l"
  1324. ACTION_ECHO; CHECK_YYMORE(yytext);
  1325.     YY_BREAK
  1326. case 86:
  1327. # line 374 "scan.l"
  1328. ACTION_ECHO;
  1329.     YY_BREAK
  1330. case 87:
  1331. # line 375 "scan.l"
  1332. {
  1333.             ++linenum;
  1334.             ACTION_ECHO;
  1335.             if ( bracelevel == 0 )
  1336.                 {
  1337.                 fputs( "\tYY_BREAK\n", temp_action_file );
  1338.                 BEGIN(SECT2);
  1339.                 }
  1340.             }
  1341.     YY_BREAK
  1342.     /* REJECT and yymore() are checked for above, in PERCENT_BRACE_ACTION */
  1343. case 88:
  1344. # line 386 "scan.l"
  1345. ACTION_ECHO; ++bracelevel;
  1346.     YY_BREAK
  1347. case 89:
  1348. # line 387 "scan.l"
  1349. ACTION_ECHO; --bracelevel;
  1350.     YY_BREAK
  1351. case 90:
  1352. # line 388 "scan.l"
  1353. ACTION_ECHO;
  1354.     YY_BREAK
  1355. case 91:
  1356. # line 389 "scan.l"
  1357. ACTION_ECHO;
  1358.     YY_BREAK
  1359. case 92:
  1360. # line 390 "scan.l"
  1361. ACTION_ECHO; BEGIN(ACTION_COMMENT);
  1362.     YY_BREAK
  1363. case 93:
  1364. # line 391 "scan.l"
  1365. ACTION_ECHO; /* character constant */
  1366.     YY_BREAK
  1367. case 94:
  1368. # line 392 "scan.l"
  1369. ACTION_ECHO; BEGIN(ACTION_STRING);
  1370.     YY_BREAK
  1371. case 95:
  1372. # line 393 "scan.l"
  1373. {
  1374.             ++linenum;
  1375.             ACTION_ECHO;
  1376.             if ( bracelevel == 0 )
  1377.                 {
  1378.                 fputs( "\tYY_BREAK\n", temp_action_file );
  1379.                 BEGIN(SECT2);
  1380.                 }
  1381.             }
  1382.     YY_BREAK
  1383. case 96:
  1384. # line 402 "scan.l"
  1385. ACTION_ECHO;
  1386.     YY_BREAK
  1387. case 97:
  1388. # line 404 "scan.l"
  1389. ACTION_ECHO; BEGIN(ACTION);
  1390.     YY_BREAK
  1391. case 98:
  1392. # line 405 "scan.l"
  1393. ACTION_ECHO;
  1394.     YY_BREAK
  1395. case 99:
  1396. # line 406 "scan.l"
  1397. ACTION_ECHO;
  1398.     YY_BREAK
  1399. case 100:
  1400. # line 407 "scan.l"
  1401. ++linenum; ACTION_ECHO;
  1402.     YY_BREAK
  1403. case 101:
  1404. # line 408 "scan.l"
  1405. ACTION_ECHO;
  1406.     YY_BREAK
  1407. case 102:
  1408. # line 410 "scan.l"
  1409. ACTION_ECHO; BEGIN(SECT2);
  1410.     YY_BREAK
  1411. case 103:
  1412. # line 411 "scan.l"
  1413. ++linenum; ACTION_ECHO; BEGIN(SECT2);
  1414.     YY_BREAK
  1415. case 104:
  1416. # line 412 "scan.l"
  1417. ACTION_ECHO;
  1418.     YY_BREAK
  1419. case 105:
  1420. # line 413 "scan.l"
  1421. ACTION_ECHO;
  1422.     YY_BREAK
  1423. case 106:
  1424. # line 414 "scan.l"
  1425. ++linenum; ACTION_ECHO;
  1426.     YY_BREAK
  1427. case 107:
  1428. # line 416 "scan.l"
  1429. ACTION_ECHO;
  1430.     YY_BREAK
  1431. case 108:
  1432. # line 417 "scan.l"
  1433. ACTION_ECHO;
  1434.     YY_BREAK
  1435. case 109:
  1436. # line 418 "scan.l"
  1437. ++linenum; ACTION_ECHO;
  1438.     YY_BREAK
  1439. case 110:
  1440. # line 419 "scan.l"
  1441. ACTION_ECHO; BEGIN(ACTION);
  1442.     YY_BREAK
  1443. case 111:
  1444. # line 420 "scan.l"
  1445. ACTION_ECHO;
  1446.     YY_BREAK
  1447. case 112:
  1448. # line 423 "scan.l"
  1449. {
  1450.             yylval = myesc( yytext );
  1451.             return ( CHAR );
  1452.             }
  1453.     YY_BREAK
  1454. case 113:
  1455. # line 428 "scan.l"
  1456. {
  1457.             yylval = myesc( yytext );
  1458.             BEGIN(CCL);
  1459.             return ( CHAR );
  1460.             }
  1461.     YY_BREAK
  1462. case 114:
  1463. # line 435 "scan.l"
  1464. ECHO;
  1465.     YY_BREAK
  1466. case 115:
  1467. # line 436 "scan.l"
  1468. ECHO;
  1469.     YY_BREAK
  1470. case YY_STATE_EOF(INITIAL):
  1471. case YY_STATE_EOF(SECT2):
  1472. case YY_STATE_EOF(SECT3):
  1473. case YY_STATE_EOF(CODEBLOCK):
  1474. case YY_STATE_EOF(PICKUPDEF):
  1475. case YY_STATE_EOF(SC):
  1476. case YY_STATE_EOF(CARETISBOL):
  1477. case YY_STATE_EOF(NUM):
  1478. case YY_STATE_EOF(QUOTE):
  1479. case YY_STATE_EOF(FIRSTCCL):
  1480. case YY_STATE_EOF(CCL):
  1481. case YY_STATE_EOF(ACTION):
  1482. case YY_STATE_EOF(RECOVER):
  1483. case YY_STATE_EOF(BRACEERROR):
  1484. case YY_STATE_EOF(C_COMMENT):
  1485. case YY_STATE_EOF(C_COMMENT_2):
  1486. case YY_STATE_EOF(ACTION_COMMENT):
  1487. case YY_STATE_EOF(ACTION_STRING):
  1488. case YY_STATE_EOF(PERCENT_BRACE_ACTION):
  1489. case YY_STATE_EOF(USED_LIST):
  1490.     yyterminate();
  1491.  
  1492.         case YY_END_OF_BUFFER:
  1493.             /* undo the effects of YY_DO_BEFORE_ACTION */
  1494.             *yy_cp = yy_hold_char;
  1495.  
  1496.             yytext = yy_bp;
  1497.  
  1498.             switch ( yy_get_next_buffer() )
  1499.             {
  1500.             case EOB_ACT_END_OF_FILE:
  1501.                 {
  1502.                 if ( yywrap() )
  1503.                 {
  1504.                 /* note: because we've taken care in
  1505.                  * yy_get_next_buffer() to have set up yytext,
  1506.                  * we can now set up yy_c_buf_p so that if some
  1507.                  * total hoser (like flex itself) wants
  1508.                  * to call the scanner after we return the
  1509.                  * YY_NULL, it'll still work - another YY_NULL
  1510.                  * will get returned.
  1511.                  */
  1512.                 yy_c_buf_p = yytext;
  1513.  
  1514.                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  1515.                 goto do_action;
  1516.                 }
  1517.  
  1518.                 else
  1519.                 YY_NEW_FILE;
  1520.                 }
  1521.                 break;
  1522.  
  1523.             case EOB_ACT_RESTART_SCAN:
  1524.                 yy_c_buf_p = yytext;
  1525.                 yy_hold_char = *yy_c_buf_p;
  1526.                 break;
  1527.  
  1528.             case EOB_ACT_LAST_MATCH:
  1529.                 yy_c_buf_p = &yy_ch_buf[yy_n_chars];
  1530.  
  1531.                 yy_current_state = yy_get_previous_state();
  1532.  
  1533.                 yy_cp = yy_c_buf_p;
  1534.                 yy_bp = yytext;
  1535.                 continue; /* go to "YY_DO_BEFORE_ACTION" */
  1536.             }
  1537.             break;
  1538.  
  1539.         default:
  1540.             printf( "action # %d\n", yy_act );
  1541.             YY_FATAL_ERROR( "fatal flex scanner internal error" );
  1542.         }
  1543.  
  1544.         break; /* exit bogus while loop */
  1545.         }
  1546.     }
  1547.     }
  1548.  
  1549.  
  1550. /* yy_get_next_buffer - try to read in new buffer
  1551.  *
  1552.  * synopsis
  1553.  *     int yy_get_next_buffer();
  1554.  *     
  1555.  * returns a code representing an action
  1556.  *     EOB_ACT_LAST_MATCH - 
  1557.  *     EOB_ACT_RESTART_SCAN - restart the scanner
  1558.  *     EOB_ACT_END_OF_FILE - end of file
  1559.  */
  1560.  
  1561. static int yy_get_next_buffer()
  1562.  
  1563.     {
  1564.     register char *dest = yy_ch_buf;
  1565.     register char *source = yytext - 1; /* copy prev. char, too */
  1566.     register int number_to_move, i;
  1567.     int ret_val;
  1568.     
  1569.     if ( yy_c_buf_p != &yy_ch_buf[yy_n_chars + 1] )
  1570.     {
  1571.     YY_FATAL_ERROR( "NULL in input" );
  1572.     /*NOTREACHED*/
  1573.     }
  1574.  
  1575.     /* try to read more data */
  1576.  
  1577.     /* first move last chars to start of buffer */
  1578.     number_to_move = yy_c_buf_p - yytext;
  1579.  
  1580.     for ( i = 0; i < number_to_move; ++i )
  1581.     *(dest++) = *(source++);
  1582.  
  1583.     if ( yy_eof_has_been_seen )
  1584.     /* don't do the read, it's not guaranteed to return an EOF,
  1585.      * just force an EOF
  1586.      */
  1587.     yy_n_chars = 0;
  1588.  
  1589.     else
  1590.     {
  1591.     int num_to_read = YY_BUF_SIZE - number_to_move - 1;
  1592.  
  1593.     if ( num_to_read > YY_READ_BUF_SIZE )
  1594.         num_to_read = YY_READ_BUF_SIZE;
  1595.  
  1596.     /* read in more data */
  1597.     YY_INPUT( (&yy_ch_buf[number_to_move]), yy_n_chars, num_to_read );
  1598.     }
  1599.  
  1600.     if ( yy_n_chars == 0 )
  1601.     {
  1602.     if ( number_to_move == 1 )
  1603.         ret_val = EOB_ACT_END_OF_FILE;
  1604.     else
  1605.         ret_val = EOB_ACT_LAST_MATCH;
  1606.  
  1607.     yy_eof_has_been_seen = 1;
  1608.     }
  1609.  
  1610.     else
  1611.     ret_val = EOB_ACT_RESTART_SCAN;
  1612.  
  1613.     yy_n_chars += number_to_move;
  1614.     yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1615.     yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1616.  
  1617.     /* yytext begins at the second character in
  1618.      * yy_ch_buf; the first character is the one which
  1619.      * preceded it before reading in the latest buffer;
  1620.      * it needs to be kept around in case it's a
  1621.      * newline, so yy_get_previous_state() will have
  1622.      * with '^' rules active
  1623.      */
  1624.  
  1625.     yytext = &yy_ch_buf[1];
  1626.  
  1627.     return ( ret_val );
  1628.     }
  1629.  
  1630.  
  1631. /* yy_get_previous_state - get the state just before the EOB char was reached
  1632.  *
  1633.  * synopsis
  1634.  *     yy_state_type yy_get_previous_state();
  1635.  */
  1636.  
  1637. static yy_state_type yy_get_previous_state()
  1638.  
  1639.     {
  1640.     register yy_state_type yy_current_state;
  1641.     register char *yy_cp;
  1642.  
  1643.     register char *yy_bp = yytext;
  1644.  
  1645.     yy_current_state = yy_start;
  1646.     if ( yy_bp[-1] == '\n' )
  1647.     ++yy_current_state;
  1648.  
  1649.     for ( yy_cp = yytext; yy_cp < yy_c_buf_p; ++yy_cp )
  1650.     {
  1651.     register char yy_c = yy_ec[*yy_cp];
  1652.     if ( yy_accept[yy_current_state] )
  1653.         {
  1654.         yy_last_accepting_state = yy_current_state;
  1655.         yy_last_accepting_cpos = yy_cp;
  1656.         }
  1657.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1658.         {
  1659.         yy_current_state = yy_def[yy_current_state];
  1660.         if ( yy_current_state >= 317 )
  1661.         yy_c = yy_meta[yy_c];
  1662.         }
  1663.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1664.     }
  1665.  
  1666.     return ( yy_current_state );
  1667.     }
  1668.  
  1669.  
  1670. #ifdef __STDC__
  1671. static void yyunput( int c, register char *yy_bp )
  1672. #else
  1673. static void yyunput( c, yy_bp )
  1674. int c;
  1675. register char *yy_bp;
  1676. #endif
  1677.  
  1678.     {
  1679.     register char *yy_cp = yy_c_buf_p;
  1680.  
  1681.     *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1682.  
  1683.     if ( yy_cp < yy_ch_buf + 2 )
  1684.     { /* need to shift things up to make room */
  1685.     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  1686.     register char *dest = &yy_ch_buf[YY_BUF_SIZE + 2];
  1687.     register char *source = &yy_ch_buf[number_to_move];
  1688.  
  1689.     while ( source > yy_ch_buf )
  1690.         *--dest = *--source;
  1691.  
  1692.     yy_cp += dest - source;
  1693.     yy_bp += dest - source;
  1694.  
  1695.     if ( yy_cp < yy_ch_buf + 2 )
  1696.         YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1697.     }
  1698.  
  1699.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  1700.     yy_cp[-2] = '\n';
  1701.  
  1702.     *--yy_cp = c;
  1703.  
  1704.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  1705.     }
  1706.  
  1707.  
  1708. static int input()
  1709.  
  1710.     {
  1711.     int c;
  1712.     char *yy_cp = yy_c_buf_p;
  1713.  
  1714.     *yy_cp = yy_hold_char;
  1715.  
  1716.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1717.     { /* need more input */
  1718.     yytext = yy_c_buf_p;
  1719.     ++yy_c_buf_p;
  1720.  
  1721.     switch ( yy_get_next_buffer() )
  1722.         {
  1723.         /* this code, unfortunately, is somewhat redundant with
  1724.          * that above
  1725.          */
  1726.         case EOB_ACT_END_OF_FILE:
  1727.         {
  1728.         if ( yywrap() )
  1729.             {
  1730.             yy_c_buf_p = yytext;
  1731.             return ( EOF );
  1732.             }
  1733.  
  1734.         yy_ch_buf[0] = '\n';
  1735.         yy_n_chars = 1;
  1736.         yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1737.         yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1738.         yy_eof_has_been_seen = 0;
  1739.         yytext = yy_c_buf_p = &yy_ch_buf[1];
  1740.         yy_hold_char = *yy_c_buf_p;
  1741.  
  1742.         return ( input() );
  1743.         }
  1744.         break;
  1745.  
  1746.         case EOB_ACT_RESTART_SCAN:
  1747.         yy_c_buf_p = yytext;
  1748.         break;
  1749.  
  1750.         case EOB_ACT_LAST_MATCH:
  1751.         YY_FATAL_ERROR( "unexpected last match in input()" );
  1752.         }
  1753.     }
  1754.  
  1755.     c = *yy_c_buf_p;
  1756.     yy_hold_char = *++yy_c_buf_p;
  1757.  
  1758.     return ( c );
  1759.     }
  1760.  
  1761.  
  1762. #ifdef __STDC__
  1763. static void yyrestart( FILE *input_file )
  1764. #else
  1765. static void yyrestart( input_file )
  1766. FILE *input_file;
  1767. #endif
  1768.  
  1769.     {
  1770.     if ( yyin != stdin )
  1771.     fclose( yyin );
  1772.  
  1773.     yyin = input_file;
  1774.     yy_init = 1;
  1775.     }
  1776. # line 436 "scan.l"
  1777.  
  1778.  
  1779.  
  1780.  
  1781.